<template>
  <div class="app-container">
    <!--工具栏-->
    <div class="head-container">
      <div v-if="crud.props.searchToggle">
        <!-- 搜索 -->
        <el-input
          v-model="query.value"
          clearable
          placeholder="输入搜索内容"
          style="width: 200px"
          class="filter-item"
          @keyup.enter.native="crud.toQuery"
        />
        <el-select
          v-model="query.type"
          clearable
          placeholder="类型"
          class="filter-item"
          style="width: 130px"
        >
          <el-option
            v-for="item in queryTypeOptions"
            :key="item.key"
            :label="item.display_name"
            :value="item.key"
          />
        </el-select>
        <rrOperation :crud="crud" />
      </div>
      <!--如果想在工具栏加入更多按钮，可以使用插槽方式， slot = 'left' or 'right'-->
      <crudOperation :permission="permission" />
      <el-dialog
        title="订单详情"
        :visible.sync="dialogVisible"
        width="60%"
        height="20%"
      >
        <div>测试</div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="dialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="dialogVisible = false"
            >确 定</el-button
          >
        </span>
      </el-dialog>
      <!--表格渲染-->
      <el-table
        ref="table"
        v-loading="crud.loading"
        :data="crud.data"
        size="small"
        style="width: 100%"
        @selection-change="crud.selectionChangeHandler"
      >
        <el-table-column type="selection" width="55" />
        <el-table-column
          v-if="columns.visible('orderId')"
          prop="orderId"
          label="订单号"
        />
        <el-table-column
          v-if="columns.visible('totalNum')"
          prop="totalNum"
          label="订单数"
        />
        <el-table-column
          v-if="columns.visible('totalPrice')"
          prop="totalPrice"
          label="订单总价"
        />
        <el-table-column
          v-if="columns.visible('payTime')"
          prop="payTime"
          label="支付时间"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.payTime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
          v-permission="['admin', 'yxStoreOrder:search']"
          label="操作"
          width="150px"
          align="center"
        >
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="primary"
              icon="el-icon-search"
              @click="examine(scope.row.id)"
            >
              <!-- <router-link :to="{name:'Inventory'}"> -->
              订单详情
              <!-- </router-link> -->
            </el-button>
          </template>
        </el-table-column>
      </el-table>
      <!--分页组件-->
      <pagination />
    </div>
  </div>
</template>
 
<script>
import crudYxStoreOrder from "@/api/yxStoreOrder";
import CRUD, { presenter, header, form, crud } from "@crud/crud";
import rrOperation from "@crud/RR.operation";
import crudOperation from "@crud/CRUD.operation";
import udOperation from "@crud/UD.operation";
import pagination from "@crud/Pagination";
import MaterialList from "@/components/material";

const defaultCrud = CRUD({
  title: "销货订单",
  url: "retail/order/yxStoreOrders",
  sort: "id,desc",
  params: {
    storeId: JSON.parse(localStorage.getItem("SET_USER")).retail,
  },
  crudMethod: { ...crudYxStoreOrder },
});
const defaultForm = {
  id: null,
  orderId: null,
  extendOrderId: null,
  uid: null,
  realName: null,
  userPhone: null,
  userAddress: null,
  cartId: null,
  freightPrice: null,
  totalNum: null,
  totalPrice: null,
  totalPostage: null,
  payPrice: null,
  payPostage: null,
  deductionPrice: null,
  couponId: null,
  couponPrice: null,
  paid: null,
  payTime: null,
  payType: null,
  createTime: null,
  updateTime: null,
  status: null,
  refundStatus: null,
  refundReasonWapImg: null,
  refundReasonWapExplain: null,
  refundReasonTime: null,
  refundReasonWap: null,
  refundReason: null,
  refundPrice: null,
  deliverySn: null,
  deliveryName: null,
  deliveryType: null,
  deliveryId: null,
  gainIntegral: null,
  useIntegral: null,
  backIntegral: null,
  mark: null,
  isDel: null,
  unique: null,
  remark: null,
  merId: null,
  isMerCheck: null,
  combinationId: null,
  pinkId: null,
  cost: null,
  seckillId: null,
  bargainId: null,
  verifyCode: null,
  shippingType: null,
  isChannel: null,
  isRemind: null,
  isSystemDel: null,
  payIntegral: null,
  isBatch: null,
  sellerRetailname: null,
  sellerPhone: null,
  type: null,
};

export default {
  name: "YxStoreOrder",
  components: {
    pagination,
    crudOperation,
    rrOperation,
    udOperation,
    MaterialList,
  },
  mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()],
  data() {
    return {
      dialogVisible: false,
      permission: {
        add: ["admin", "yxStoreSalesLog:add"],
        edit: ["admin", "yxStoreSalesLog:edit"],
        del: ["admin", "yxStoreSalesLog:del"],
      },
      queryTypeOptions: [
        { key: "orderId", display_name: "订单号" },
        { key: "totalNum", display_name: "订单数" },
        { key: "totalPrice", display_name: "订单总价" },
      ],
    };
  },
  watch: {},
  created() {
    defaultForm.storeId = JSON.parse(localStorage.getItem("SET_USER")).retail;
    console.log(defaultForm.uid);
  },
  methods: {
    examine(data){
        this.dialogVisible = true
    },
    // 获取数据前设置好接口地址
    [CRUD.HOOK.beforeRefresh]() {
      const query = this.query;
      if (query.type && query.value) {
        this.crud.params[query.type] = query.value;
      } else {
        delete this.crud.params.orderId;
        delete this.crud.params.totalNum;
        delete this.crud.params.totalPrice;
      }
      return true;
    },
  },
};
</script>

<style scoped>
.table-img {
  display: inline-block;
  text-align: center;
  background: #ccc;
  color: #fff;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  vertical-align: middle;
  width: 32px;
  height: 32px;
  line-height: 32px;
}
</style>
